<?php

/**
 * Sunny软件公司欲开发一个数据转换工具，可以将数据库中的数据转换成多种文件格式，
 * 例如txt、xml、pdf等格式，同时该工具需要支持多种不同的数据库。试使用桥接模式对其进行设计。
 */

abstract class File
{
	protected $database;
	
	public function setDatabase(Database $database)
	{
		$this->database = $database;
	}
	
	public abstract function conversion();
}

class TxtFile extends File
{
	public function conversion()
	{ 
		$this->database->getData();
		echo '转换为txt<br/>';
	}
}

class XmlFile extends File
{
	public function conversion()
	{
		$this->database->getData();
		echo '转换为xml<br/>';
	}
}

class PdfFile extends File
{
	public function conversion()
	{
		$this->database->getData();
		echo '转换为pdf<br/>';
	}
}

interface Database
{
	public function getData();
}

class MysqlDatabase implements Database
{
	public function getData()
	{
		echo '从mysql数据库中得到转换数据。<br/>';
	}
}

class OracleDatabase implements Database
{
	public function getData()
	{
		echo '从oracle数据库中得到转换数据。<br/>';
	}
}

class MssqlDatabase implements Database
{
	public function getData()
	{
		echo '从mssql数据库中得到转换数据。<br/>';
	}
}

class Client
{
	public static function main()
	{
		//$file = new PdfFile();
		$file = new XmlFile();
		//$database = new MysqlDatabase();
		$database = new OracleDatabase();
		$file->setDatabase($database);
		$file->conversion();
	}
}

Client::main();